![Amazon QuickSight: DBデータソースからデータセットを作成する際の諸注意(前提条件まとめ)](https://devio2023-media.developers.io/wp-content/uploads/2016/06/quicksight.png)
Amazon QuickSight: DBデータソースからデータセットを作成する際の諸注意(前提条件まとめ)
Amazon QuickSightで紹介されているチュートリアルをこれまで順を追って実践してきまして、残すはデータベース(RDSやRedshift周り)のデータソースを使ったもののみとなりましたが、Amazon QuickSightでDB/DWHをデータソースとしたデータセットの作成を行うには幾つかの諸設定が必要となります。トピックが幾つかに渡る形となっていましたので、ここでその辺りの情報をまとめて見て行きたいと思います。
目次
- Amazon QuickSightで利用可能なデータベース
- DB認証に必要となる権限
- ネットワーク及びデータベースの構成要件
- 自己管理DBインスタンスにおけるデータベース構成要件
- Amazon QuickSightからAWSデータストアへの接続認可方法
- Amazon QuickSightのAWSリソースへのアクセス許可の管理方法
- まとめ
Amazon QuickSightで利用可能なデータベース
Amazon QuickSightで利用可能なデータベースについては以下エントリにて言及しましたが、DB及びDWHと、その環境が載っている場所の対応表は以下テーブルにまとめた形となります。
Redshift | MySQL (5.1以上) | PostgreSQL (9.3.1以上) | MariaDB (10.0以上) | Aurora | SQLServer (2012以上) | |
---|---|---|---|---|---|---|
DWH | ◯ | ー | ー | ー | ー | ー |
RDS | ー | ◯ | ◯ | ◯ | ◯ | ◯ |
on EC2 | ー | ◯ | ◯ | ◯ | ー | ◯ |
その他(※1) | ー | ◯ | ◯ | ◯ | ー | ◯ |
(※1)インターネットアクセス可能な環境下のDB
DB認証に必要となる権限
データベースに接続するには、データベースのユーザー名とパスワードが必要となります。この認証情報で指定されるユーザーアカウントは、Amazon QuickSightがテーブルスキーマを発見したり、テーブルサイズを見積もったりというような事を行う事を許可する為に、幾つかのシステムテーブルに対する参照(SELECT)権限を持っている必要があります。
以下の表はデータベース毎の『接続アカウントが参照権限を必要とするテーブル』の一覧です。これらの要件は、環境に関係なく(オンプレミス、Amazon RDS、Amazon EC2など)、接続先のすべてのデータベースインスタンスに適用されます。
DBの種類 | 対象テーブル |
---|---|
Amazon Aurora | ・INFORMATION_SCHEMA.STATISTICS ・INFORMATION_SCHEMA.TABLES |
Amazon Redshift | ・pg_stats ・pg_class ・pg_namespace |
MariaDB | ・INFORMATION_SCHEMA.STATISTICS ・INFORMATION_SCHEMA.TABLES |
Microsoft SQL Server | ・DBCC SHOW_STATISTICS ・sp_statistics |
MySQL | ・INFORMATION_SCHEMA.STATISTICS ・INFORMATION_SCHEMA.TABLES |
PostgreSQL | ・pg_stats ・pg_class ・pg_namespace |
ネットワーク及びデータベースの構成要件
データベース情報をデータソースとして機能させる為には、Amazon QuickSightが(対象データベースに)アクセス出来る様に設定を行う必要があります。以下セクションではその内容について触れていきます。なお、Amaozn EC2上のDBインスタンスの場合はEC2のネットワーク要件及びEC2上で自己管理するDBの構成要件双方を満たす必要があります。
ネットワーク構成要件
Amazon QuickSightがアクセス出来る状態を設定するには、DBサーバがインターネット経由でアクセス出来る必要があり、Amazon QuickSightサーバからのインバウンド通信も許可する必要があります。
DBがAWS上かつAmazon QuickSightアカウントと同じリージョンにある場合、インスンタンスの自動検知機能を使う事が出来ます。これを有効にするには、Amazon QuickSightに権限を与える必要があります。詳細については当エントリ末尾に記載した『Amazon QuickSightのAWSリソースへのアクセス許可の管理方法』をご参照ください。
デフォルトVPC上でのAWSインスタンスのネットワーク構成
データベースがデフォルトVPCで作成したAWSクラスタやインスタンス上に存在し、プライベートアクセスとしなかった場合は既にインターネット経由でアクセス出来る適切な構成となっており、Amazon QuickSightサーバからAWSクラスタまたはDBインスタンスへのアクセスを有効にする設定が必要となります。方法の詳細については以下をご参照ください。
- Authorizing Connections from Amazon QuickSight to Amazon RDS Instances - Amazon QuickSight
- Authorizing Connections from Amazon QuickSight to Amazon Redshift Clusters - Amazon QuickSight
- Authorizing Connections from Amazon QuickSight to Amazon EC2 Instances - Amazon QuickSight
デフォルトVPC以外でのAWSインスタンスのネットワーク構成
デフォルトVPC以外でAWSインスタンスを設定する場合、VPCに以下のものが存在している事を確認してください。
- インターネットゲートウェイ
- パブリックサブネット
- インターネットゲートウェイとAWSインスタンス間を結ぶルートテーブルのルート。
- クラスタまたはインスタンスとAmazon QuickSightサーバ間のトラフィックを許可する、VPC内のネットワークアクセス・コントロール・リスト(ACL)。ACLを使用する場合は以下を設定する必要があります。
- 適切なAmazon QuickSightのIPアドレス範囲及び全てのポートからのインバウンド通信を許可し、データベースがlistenしているIPアドレスとポートに転送。
- 適切なAmazon QuickSightのIPアドレス範囲及び全てのポートに対し、データベースのIPアドレスとポートからのアウトバウンド通信を許可。
- Amazon QuickSightのIPアドレス範囲の詳細については後述します。またVPC ACLの詳細については下記をご参照ください。
- クラスタまたはインスタンスとAmazon QuickSightサーバ間のトラフィックを許可するセキュリティグループ。適切なセキュリティグループルールの作成方法については下記をご参照ください。また、セキュリティグループ及びACLの設定は必要に応じて必要なものを選択してください。
- AWS VPCの詳細については以下をご参照ください。
VPC上に存在しないAWSインスタンスのネットワーク構成
VPC上に存在しないAWSインスタンスを設定する場合、クラスタまたはインスタンスとAmazon QuickSightサーバ間のトラフィックを許可するセキュリティグループがある事を確認してください。方法の詳細については以下の中の該当トピックをご参照ください。
- Authorizing Connections from Amazon QuickSight to Amazon RDS Instances - Amazon QuickSight
- Authorizing Connections from Amazon QuickSight to Amazon Redshift Clusters - Amazon QuickSight
- Authorizing Connections from Amazon QuickSight to Amazon EC2 Instances - Amazon QuickSight
非AWSデータベースインスタンスのネットワーク構成
データベースがAWS環境外のサーバにある場合、そのサーバのファイアウォール設定を変更し、適切なAmazon QuickSightのIPアドレス範囲からのトラフィックを受け入れる必要があります。下記Amazon QuickSight IPアドレス範囲の情報を参照・設定してください。その他必要な要件については該当するOSのマニュアルをご参照ください。
Amazon QuickSightのIPアドレス範囲
現在サポートされているリージョンにおけるAmazon QuickSightサーバのIPアドレス範囲の情報は以下となります。
リージョン | IPアドレス範囲 |
---|---|
US East (N. Virginia) (us-east-1) | 52.23.63.224/27 |
US West (Oregon) (us-west-2) | 54.70.204.128/27 |
EU (Ireland) (eu-west-1) | 52.210.255.224/27 |
自己管理DBインスタンスにおけるデータベース構成要件
Amazon QuickSightがアクセス出来るデータベースは、以下の要件を満たしている必要があります。
- インターネット経由でアクセス可能である事。インターネット接続を可能にするために必要な手順については各種DB管理システムの資料をご参照ください。
- データセット作成の一環として提供されるユーザー資格情報を用いて接続を受け入れ、アクセス認証を行う様に設定されている事。
Amazon QuickSightからAWSデータストアへの接続認可方法
幾つかの項で言及されている下記ドキュメントの内容については、基本的には上記『Amazon QuickSightのIPアドレス範囲』からのアクセスを許可する設定を行う内容を詳しく解説しているものとなっています。ですのでここでは詳細は割愛します。
- Authorizing Connections from Amazon QuickSight to Amazon RDS Instances - Amazon QuickSight
- Authorizing Connections from Amazon QuickSight to Amazon Redshift Clusters - Amazon QuickSight
- Authorizing Connections from Amazon QuickSight to Amazon EC2 Instances - Amazon QuickSight
Amazon QuickSightのAWSリソースへのアクセス許可の管理方法
Amazon QuickSightへのサインアップの一環として、Amazon QuickSightの権限をAWSリソースに設定します。これらの権限を編集し、Amazon QuickSightがこれらリソースへのアクセスを行う際のアクセスレベルを変更する事が可能です。権限を編集するにはAmazon QuickSightアカウント作成に使用されたIAMアカウントまたはAWSのルートアカウント、または管理者権限を所有するIAMユーザーとしてサインインする必要があります。
Amazon QuickSightでAWSリソースへのアクセス権を編集するには以下の手順で行います。
1.アプリケーションバーのユーザー名から展開されるメニューより[Manage QuickSight]を選択。
2.[Account Permissions]を選択。
3.[Edit AWS Permissions]を選択。
4.[Edit QuickSight read-only access to AWS resources]ページにて、Amazon Redshift/Amazon RDS/IAMのチェックボックスを設定。チェックが入るとアクセス許可、外すとアクセス不可となります。
5.Amazon S3バケットへの許可を行う場合、[Amazon S3 (all buckets)]のチェックボックスを選択してAmazon QuickSightがアクセスするためのS3バケット選択画面へと進みます。[Choose Amazon S3 buckets]でアクセス対象に含めたいバケットを選択し、[Select buckets]を押下。
6.[Apply]押下。設定が適用されます。
まとめ
という訳で、Amazon QuickSightにおけるデータベースインスタンスアクセスの際の設定項目、必要な条件のまとめでした。検証目的であればセキュリティグループも緩めの設定で良いのかも知れませんが本番利用となるとそうは行きません。適切なアクセス管理を行う為にも、当エントリで紹介した内容はしっかり抑えておきたいところですね。こちらからは以上です。